package com.ghsc.yigou.live.ext

import android.app.Activity
import android.content.pm.ActivityInfo
import com.cn.appcore.utils.GlideEngine
import com.ghsc.yigou.live.R

import com.luck.picture.lib.PictureSelector
import com.luck.picture.lib.config.PictureConfig
import com.luck.picture.lib.config.PictureMimeType
import com.luck.picture.lib.entity.LocalMedia

fun Activity.launchAlbum(selectList:MutableList<LocalMedia>,requestCode:Int){
    // 进入相册 以下是例子：不需要的api可以不写
    PictureSelector.create(this)
        .openGallery(PictureMimeType.ofImage()) // 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
        .loadImageEngine(GlideEngine.createGlideEngine()) // 外部传入图片加载引擎，必传项
        .theme(R.style.picture_default_style) // 主题样式设置 具体参考 values/styles   用法：R.style.picture.white.style v2.3.3后 建议使用setPictureStyle()动态方式
        .isWeChatStyle(false) // 是否开启微信图片选择风格
        .isWithVideoImage(true) // 图片和视频是否可以同选,只在ofAll模式下有效
//                .maxSelectNum(maxSelectNum) // 最大图片选择数量
//                .minSelectNum(1) // 最小选择数量
        .setCameraImageFormat(PictureMimeType.JPEG)
        .imageSpanCount(4) // 每行显示个数
        .isReturnEmpty(false) // 未选择数据时点击按钮是否可以返回
        .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) // 设置相册Activity方向，不设置默认使用系统
        .isOriginalImageControl(false) // 是否显示原图控制按钮，如果设置为true则用户可以自由选择是否使用原图，压缩、裁剪功能将会失效
        .selectionMode(PictureConfig.SINGLE) // 多选 or 单选
        .isSingleDirectReturn(false) // 单选模式下是否直接返回，PictureConfig.SINGLE模式下有效
        .previewImage(true) // 是否可预览图片
        .previewVideo(false) // 是否可预览视频
        .enablePreviewAudio(false) // 是否可播放音频
        .isCamera(true) // 是否显示拍照按钮
        .isZoomAnim(true) // 图片列表点击 缩放效果 默认true
        .isEnableCrop(true) // 是否裁剪
        .cropImageWideHigh(720,720)
        .withAspectRatio(1,1)
        .isCompress(true) // 是否压缩
        .compressQuality(95) // 图片压缩后输出质量 0~ 100
        .synOrAsy(true) //同步false或异步true 压缩 默认同步
        .isOpenClickSound(true) // 是否开启点击声音
        .selectionMedia(selectList) // 是否传入已选图片
        .cutOutQuality(90) // 裁剪输出质量 默认100
        .minimumCompressSize(100) // 小于100kb的图片不压缩
        .forResult(requestCode) //结果回调onActivityResult code
}

fun Activity.launchCover(selectList:MutableList<LocalMedia>,requestCode:Int){
    // 进入相册 以下是例子：不需要的api可以不写
    PictureSelector.create(this)
        .openGallery(PictureMimeType.ofImage()) // 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
        .loadImageEngine(GlideEngine.createGlideEngine()) // 外部传入图片加载引擎，必传项
        .theme(R.style.picture_default_style) // 主题样式设置 具体参考 values/styles   用法：R.style.picture.white.style v2.3.3后 建议使用setPictureStyle()动态方式
        .isWeChatStyle(false) // 是否开启微信图片选择风格
        .isWithVideoImage(false) // 图片和视频是否可以同选,只在ofAll模式下有效
//                .maxSelectNum(maxSelectNum) // 最大图片选择数量
//                .minSelectNum(1) // 最小选择数量
        .setCameraImageFormat(PictureMimeType.JPEG)
        .imageSpanCount(4) // 每行显示个数
        .isReturnEmpty(false) // 未选择数据时点击按钮是否可以返回
        .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) // 设置相册Activity方向，不设置默认使用系统
        .isOriginalImageControl(false) // 是否显示原图控制按钮，如果设置为true则用户可以自由选择是否使用原图，压缩、裁剪功能将会失效
        .selectionMode(PictureConfig.SINGLE) // 多选 or 单选
        .isSingleDirectReturn(false) // 单选模式下是否直接返回，PictureConfig.SINGLE模式下有效
        .previewImage(true) // 是否可预览图片
        .previewVideo(false) // 是否可预览视频
        .enablePreviewAudio(false) // 是否可播放音频
        .isCamera(true) // 是否显示拍照按钮
        .isZoomAnim(true) // 图片列表点击 缩放效果 默认true
        .isEnableCrop(true) // 是否裁剪
        .withAspectRatio(1,1)
        .isCompress(true) // 是否压缩
        .compressQuality(60) // 图片压缩后输出质量 0~ 100
        .synOrAsy(true) //同步false或异步true 压缩 默认同步
        .isOpenClickSound(true) // 是否开启点击声音
        .selectionMedia(selectList) // 是否传入已选图片
        .cutOutQuality(90) // 裁剪输出质量 默认100
        .minimumCompressSize(100) // 小于100kb的图片不压缩
        .forResult(requestCode) //结果回调onActivityResult code
}

fun Activity.launchVideo(selectList:MutableList<LocalMedia>,requestCode:Int){
    // 进入相册 以下是例子：不需要的api可以不写
    PictureSelector.create(this)
        .openGallery(PictureMimeType.ofVideo()) // 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
        .loadImageEngine(GlideEngine.createGlideEngine()) // 外部传入图片加载引擎，必传项
        .theme(R.style.picture_default_style) // 主题样式设置 具体参考 values/styles   用法：R.style.picture.white.style v2.3.3后 建议使用setPictureStyle()动态方式
        .isWeChatStyle(false) // 是否开启微信图片选择风格
        .isWithVideoImage(false) // 图片和视频是否可以同选,只在ofAll模式下有效
//                .maxSelectNum(maxSelectNum) // 最大图片选择数量
//                .minSelectNum(1) // 最小选择数量
        .setCameraImageFormat(PictureMimeType.JPEG)
        .imageSpanCount(4) // 每行显示个数
        .isReturnEmpty(false) // 未选择数据时点击按钮是否可以返回
        .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) // 设置相册Activity方向，不设置默认使用系统
        .isOriginalImageControl(false) // 是否显示原图控制按钮，如果设置为true则用户可以自由选择是否使用原图，压缩、裁剪功能将会失效
        .selectionMode(PictureConfig.SINGLE) // 多选 or 单选
        .isSingleDirectReturn(false) // 单选模式下是否直接返回，PictureConfig.SINGLE模式下有效
        .previewImage(true) // 是否可预览图片
        .previewVideo(false) // 是否可预览视频
        .enablePreviewAudio(false) // 是否可播放音频
        .isCamera(true) // 是否显示拍照按钮
        .isZoomAnim(true) // 图片列表点击 缩放效果 默认true
        .isEnableCrop(true) // 是否裁剪
        .withAspectRatio(1,1)
        .isCompress(true) // 是否压缩
        .compressQuality(60) // 图片压缩后输出质量 0~ 100
        .synOrAsy(true) //同步false或异步true 压缩 默认同步
        .isOpenClickSound(true) // 是否开启点击声音
        .selectionMedia(selectList) // 是否传入已选图片
        .cutOutQuality(90) // 裁剪输出质量 默认100
        .minimumCompressSize(100) // 小于100kb的图片不压缩
        .forResult(requestCode) //结果回调onActivityResult code
}

fun LocalMedia.getImageSuffix():String{
    var suffix = ""
    if (mimeType.isNotEmpty() && mimeType.contains("image/")){
        suffix = "." + mimeType.replace("image/","")
    }
    return suffix
}

fun LocalMedia.getVideoSuffix():String{
    var suffix = ""
    if (mimeType.isNotEmpty() && mimeType.contains("video/")){
        suffix = "." + mimeType.replace("video/","")
    }
    return suffix
}